package com.anolesoft.amljmes.fourteenDispatch.controller;

import cn.hutool.core.bean.BeanUtil;
import com.anolesoft.amljmes.fourteenDispatch.dto.MesProcessQlbzDTO;
import com.anolesoft.amljmes.fourteenDispatch.dto.MesProcessQlbzVO;
import com.anolesoft.amljmes.fourteenDispatch.service.info.MesProcessQlbzService;
import com.anolesoft.common.core.domain.LoginUser;
import com.anolesoft.common.core.web.domain.AjaxResult;
import com.anolesoft.yr.demo.PageResult;
import com.anolesoft.yr.util.PageData;
import com.anolesoft.yr.util.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @author zyq
 * @date 2022/8/25
 */
@RestController
@RequestMapping(value="/MesProcessQlbz")
@Slf4j
public class MesProcessQlbzController {
    @Autowired
    private MesProcessQlbzService mesProcessQlbzService;

    @GetMapping(value = "/query")
    public AjaxResult queryQlbz(MesProcessQlbzVO mesProcessQlbzVO){
        log.debug("mesProcessQlbzVO:{}",mesProcessQlbzVO);
        Integer pageSize = mesProcessQlbzVO.getPageSize();
        Integer pageNo = mesProcessQlbzVO.getPageNo();
        MesProcessQlbzDTO mesProcessQlbzDTO = BeanUtil.copyProperties(mesProcessQlbzVO, MesProcessQlbzDTO.class);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        mesProcessQlbzDTO.setFactoryId(loginUser.getFacCode());
        log.debug("mesProcessQlbzDTO:{}",mesProcessQlbzDTO);
        PageData<List<MesProcessQlbzDTO>> listPageData = this.mesProcessQlbzService.queryQlbz(mesProcessQlbzDTO,pageNo,pageSize);
        List<MesProcessQlbzVO> mesProcessQlbzVOList = listPageData.getItems().stream()
                .map(t -> BeanUtil.copyProperties(t, MesProcessQlbzVO.class))
                .collect(Collectors.toList());
        PageResult pageResult = new PageResult(mesProcessQlbzVOList,pageSize,pageNo,listPageData.getTotal());
        return AjaxResult.success("查询成功",pageResult);
    }

    @PostMapping("/insert")
    public AjaxResult insertQlbz(@RequestBody MesProcessQlbzVO mesProcessQlbzVO){
        log.debug("mesProcessQlbzVO:{}",mesProcessQlbzVO);
        MesProcessQlbzDTO mesProcessQlbzDTO = BeanUtil.copyProperties(mesProcessQlbzVO, MesProcessQlbzDTO.class);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        mesProcessQlbzDTO.setFactoryId(loginUser.getFacCode());
        mesProcessQlbzDTO.setCreateId(loginUser.getEmpUid());
        log.debug("mesProcessQlbzDTO:{}",mesProcessQlbzDTO);
        return AjaxResult.success(this.mesProcessQlbzService.insertQlbz(mesProcessQlbzDTO));
    }
    @PostMapping(value = "/update")
    public AjaxResult updateQlbz(@RequestBody MesProcessQlbzVO mesProcessQlbzVO){
        log.debug("mesProcessQlbzVO:{}",mesProcessQlbzVO);
        MesProcessQlbzDTO mesProcessQlbzDTO = BeanUtil.copyProperties(mesProcessQlbzVO, MesProcessQlbzDTO.class);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        mesProcessQlbzDTO.setFactoryId(loginUser.getFacCode());
        mesProcessQlbzDTO.setModifyId(loginUser.getEmpUid());
        log.debug("mesProcessQlbzDTO:{}",mesProcessQlbzDTO);
        return AjaxResult.success(this.mesProcessQlbzService.updateQlbz(mesProcessQlbzDTO));
    }
    @PostMapping(value = "/delete")
    public AjaxResult deleteQlbz(@RequestBody MesProcessQlbzVO mesProcessQlbzVO){
        log.debug("mesProcessQlbzVO:{}",mesProcessQlbzVO);
        MesProcessQlbzDTO mesProcessQlbzDTO = BeanUtil.copyProperties(mesProcessQlbzVO, MesProcessQlbzDTO.class);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        mesProcessQlbzDTO.setDeleteId(loginUser.getEmpUid());
        log.debug("mesProcessQlbzDTO:{}",mesProcessQlbzDTO);
        this.mesProcessQlbzService.deleteQlbz(mesProcessQlbzDTO);
        return AjaxResult.success("删除成功！");
    }
}
